#pragma once

#include "Entity.h"
#include <string>

// Enumeration for the different tile types
enum TileTypes {TILE_BACKGROUND = 1, TILE_COLLISION, TILE_TRIGGER, TILE_SPAWN};


class Tile : public Entity 
{
private:
	bool solid;
	bool onScreen;
	int roomNumber;
	bool spawnPointOn;
	int l, t, r, b;
	std::string tileEVENT;
	int TILEtype;

public:
	Tile(int tileType, int x, int y, int width, int height, const char* image, int room, int left, int top, int right, int bottom);
	~Tile(void);

	void Render();

	bool CheckCollision(IEntity* base);

	// Accessors for solid and on screen
	bool GetSolid(void) {return solid;}
	bool GetOnScreen(void) {return onScreen;}
	bool GetSpawnPointOn(void) {return spawnPointOn;}

	int GetTileType()	{return TILEtype;}

	std::string GetEvent(void) {return tileEVENT;}

	// Mutator for on screen
	void SetOnScreen(bool result) {onScreen = result;}


	int GetRoomNum(void) {return roomNumber;}
};
